/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package proteusadm;

import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.text.DecimalFormat;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;

/**
 *
 * @author Gui
 */
public class Testes {

    private static String url = "jdbc:postgresql://localhost:5432/proteusadm";
    private static String usuario = "postgres";
    private static String senha = "0000";
    private static Connection con = null;

    public Testes() {
        realisaTeste();
    }

    public void realisaTeste() {
        String[] opcoes = {"addProdutos()", "addUser()"};
        String result = (String) JOptionPane.showInputDialog(null, "Selecione o teste :", "TESTES", JOptionPane.WARNING_MESSAGE, null, opcoes, opcoes[0]);
        if(result.equals(opcoes[0])){
            addProdutos();
        }else if(result.equals(opcoes[1])){
            addUser();
        }
    
    
    }

    public void addProdutos() {
        String s = JOptionPane.showInputDialog(null, "Digite a quantidade de registro a ser adicionada para teste no banco de dados :");

        JFrame ja = new JFrame();
        JTextArea te = new JTextArea();
        ja.add(te);
        ja.setSize(360, 480);
        ja.setVisible(true);

        DecimalFormat dec = new DecimalFormat("0.00");
        int it = Integer.parseInt(s);

        String[] opcoes = {"Pneu", "parafuso", "quadro", "bateria", "aro", "guidom", "oleo", "raio", "adesivo", "espelho"};
        for (int i = 1; i <= it; i++) {
            Produto a = new Produto();
            a.setCodigo(Banco.ultimo_codigo() + 1);
            String b = opcoes[(int) (10 * Math.random())];
            a.setNome(b);
            Double c = Double.parseDouble((dec.format((17 * Math.random()) * 10).replaceAll(",", ".")));
            a.setPreco_v(c);
            int d = (int) (1 + i * 5 * Math.random());
            a.setQtd(d);
            Banco.addProduto(a);
            String re = i + "   ---------> " + b + "  |  " + c + "  |  " + d + "\n";
            te.setText(te.getText() + re);


        }
    }

    public void addUser() {
        String s = JOptionPane.showInputDialog(null, "Digite o nome de usuario :");
        String s2 = JOptionPane.showInputDialog(null, "Digite o senha de usuario :");
        String[] opcoes = {"Pode","Não Pode"};
        String r1 = (String) JOptionPane.showInputDialog(null, "Pode editar produtos ? :", "Escolha uma ação :", 3, null, opcoes, opcoes[0]);
        String r2 = (String) JOptionPane.showInputDialog(null, "Pode editar clientes ? :", "Escolha uma ação :", 3, null, opcoes, opcoes[0]);
        String r3 = (String) JOptionPane.showInputDialog(null, "Pode ver relatorios ? :", "Escolha uma ação :", 3, null, opcoes, opcoes[0]);
            
        User u = new User();

        u.setUser(s);
        u.setPassword(s2);
        u.setEditar_p(r1.equals("Pode") ?true:false);
        u.setVer_r(r3.equals("Pode") ?true:false);
        u.setEditar_c(r2.equals("Pode") ?true:false);
        
        if(!Banco.addUser(u))
            JOptionPane.showMessageDialog(null,"Não foi possivel add seu usuario.");

    }

    public static void main(String[] args) {
       
        ArrayList x = new ArrayList();
        for(int i = 0;i<50;i++){
            x.add("a"+(i+1));
        }
        
       
        for(int i = 0;i<x.size();i++)
        System.out.println(x.get(i));
        
        
        // TODO code application logic here  

//        try {
//
//
//
//            Class.forName("org.postgresql.Driver");
//
//            con = DriverManager.getConnection(url, usuario, senha);
//
//            System.out.println("Conexão realizada com sucesso.");
//
//            Statement stm = con.createStatement();
//
//            ResultSet rs = stm.executeQuery("SELECT * FROM produtos ORDER BY codigo DESC LIMIT 1 ");
//            while (rs.next()) {
////        System.out.println(rs.getInt("codigo"));
//            }
//
////        stm.executeUpdate("INSERT INTO produtos VALUES ( 4,'CARA','hehe',3.89,4.92,0)");
//            //stm.executeUpdate("DELETE FROM tabela");
//            //Editado 21/09/2011 para correção: executeQuery é usado para pesquisa, executeUpdate deve ser usado para inserir  
//            con.close();
//
//        } catch (Exception e) {
//            e.printStackTrace();
//        } finally {
//            try {
//                con.close();
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
//
//        }
//
////         for(int i = 1;i<Banco.ultimo_codigo()+1;i++)
////        Banco.deletaProduto(i); 
//
//
//        DecimalFormat dec = new DecimalFormat("0.00");
//        String s = JOptionPane.showInputDialog(null, "Digite a quantidade de registro a ser adicionada para teste no banco de dados :");
//        int it = Integer.parseInt(s);
//
//        String[] opcoes = {"Pneu", "parafuso", "quadro", "bateria", "aro", "guidom", "oleo", "raio", "adesivo", "espelho"};
//        for (int i = 1; i < it; i++) {
//            Produto a = new Produto();
//            a.setCodigo(Banco.ultimo_codigo() + 1);
//            String b = opcoes[(int) (10 * Math.random())];
//            a.setNome(b);
//            Double c = Double.parseDouble((dec.format((17 * Math.random()) * 10).replaceAll(",", ".")));
//            a.setPreco_v(c);
//            int d = (int) (1 + i * 5 * Math.random());
//            a.setQtd(d);
//            Banco.addProduto(a);
//            System.out.println(i + "   ---------> " + b + "  |  " + c + "  |  " + d);
//        }
////    
//        System.out.println(Banco.ultimo_codigo());
//
//        Produto p = Banco.buscaCodigo(2);
//        System.out.println(p);
//        System.out.println();
//        System.out.println(Banco.ultimo_codigo());
//        Produto p ;
//        System.out.println(Banco.buscaNome("Ve"));
//        for(int i =0;i<x.size();i++){
//          p = (Produto) x.get(i);
//          System.out.println(p);
//        }
//        System.out.println();
//        x =  Banco.buscaPreco(4.99);
//        for(int i =0;i<x.size();i++){
//          p = (Produto) x.get(i);
//          System.out.println(p);
//        }
//        System.out.println();
//        x =  Banco.buscaPrecoEntre(4.92,33.33);        
//        for(int i =0;i<x.size();i++){
//          p = (Produto) x.get(i);
//          System.out.println(p);
//        }
//       
//
//             Produto a = new Produto();
//             a.setCodigo(103);
//             a.setNome("iterações");
//             a.setPreco_v(2.99);
//             a.setQtd(75);
//             Banco.editaProduto(a);
// 
// 
//        x = null;
//        p = null;
//        x =  Banco.buscaNomePrecoEntre("cara", 2.99, 13.99);
//        for(int i =0;i<x.size();i++){
//          p = (Produto) x.get(i);
//          System.out.println(p);
//        }
//        
//       
//        x =  Banco.buscaCodigoPrecoEntre(230, 2.99, 13.99);
//        for(int i =0;i<x.size();i++){
//          p = (Produto) x.get(i);
//          System.out.println(p);
//        }
//         
//         



    }
}
